#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


import time
import asyncio
import concurrent.futures


# 普通任务
def work():
    time.sleep(2)
    return '这是一个普通任务'


async def main():
    # 先去获取一个事件循环，需要使用事件循环对象运行不支持协程的任务
    loop = asyncio.get_event_loop()
    """
    默认线程方式完成任务并发
    """
    # 返回一个future对象并且默认创建一个线程池
    # fut = loop.run_in_executor(None, work)
    # res = await fut
    # print('当前线程池任务的返回值为：', res)

    # 使用进程池的方式完成并发任务
    with concurrent.futures.ProcessPoolExecutor() as pool:
        result = await loop.run_in_executor(pool, work)
        print('当前进程池的返回值为：', result)


if __name__ == '__main__':
    asyncio.run(main())
